function prepara_post(enviar,campos,formid){
	data={};
	jQuery.each(campos,function(key,value){

		data[value]=$('[id="'+formid+'"] [name="'+value+'"]').val();
	});
	//window.console.log(data);
	return data;
}

function hace_post(urlp,data,asyncv){
	var msgg='';
	$.ajax({
		type: "POST",
		url: urlp,
		async:asyncv,
		data:data,
		success: function(msg){
			msgg=jQuery.parseJSON(msg);
		}
	});
	return msgg;
}

function muestra_msj(formid,campos,resp){
	camposstr=campos.join(',#'+formid+' #');
	$('#'+formid+' #comment'+camposstr).removeClass('ui-state-error');

	if(resp.error==''){
		$('#'+formid+' #'+resp.id.key).val(''+resp.id.value);
		$('#'+formid+' #comment').html(''+resp.mensaje);
		$('#'+formid+' #comment').removeClass('ui-state-error');
		$('#'+formid+' #comment').addClass('ui-state-highlight');
	}else{
		$('#'+formid+' #comment').html(''+resp.error);
		$('#'+formid+' #comment').addClass('ui-state-error');
		$('#'+formid+' #comment').removeClass('ui-state-highlight');

		array_error   =jQuery.makeArray(resp.array_error);
		array_errorstr=array_error.join(',#');
		$('#'+formid+' #comment'+array_errorstr).addClass('ui-state-error');
	}
}

function crea_contextmenu(menu,e){
	$(menu).show();
	$(menu).animate({
			left:e.pageX-20,
			top: e.pageY-150
		}, 100
	);
	$(menu).find('A').mouseover( function() {
		$(menu).find('LI.hover').removeClass('hover');
		$(this).parent().addClass('hover');
	}).mouseout( function() {
		$(menu).find('LI.hover').removeClass('hover');
	});
	$(document).keypress( function(e) {
		switch( e.keyCode ) {
			case 38: // up
				if( $(menu).find('LI.hover').size() == 0 ) {
					$(menu).find('LI:last').addClass('hover');
				} else {
					$(menu).find('LI.hover').removeClass('hover').prevAll('LI:not(.disabled)').eq(0).addClass('hover');
					if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:last').addClass('hover');
				}
			break;
			case 40: // down
				if( $(menu).find('LI.hover').size() == 0 ) {
					$(menu).find('LI:first').addClass('hover');
				} else {
					$(menu).find('LI.hover').removeClass('hover').nextAll('LI:not(.disabled)').eq(0).addClass('hover');
					if( $(menu).find('LI.hover').size() == 0 ) $(menu).find('LI:first').addClass('hover');
				}
			break;
			case 13:{ // enter
				$(menu).find('LI.hover A').trigger('click');
				$(menu).hide();
			}
			break;
			case 27:{ // esc
				$(document).trigger('click');
				$(menu).hide();
			}
			break;
		}
	});
}

function str_pad(input, pad_length, pad_string, pad_type){
	if (input === null) { input = ' '; }
	var output = input.toString();
	if (pad_string === undefined) { pad_string = ' '; }
	if (pad_type === undefined) { pad_type = 'STR_PAD_RIGHT'; }
	if (pad_type == 'STR_PAD_RIGHT') {
		while (output.length < pad_length) {
			output = output + pad_string;
		}
	} else if (pad_type == 'STR_PAD_LEFT') {
		while (output.length < pad_length) {
			output = pad_string + output;
		}
	} else if (pad_type == 'STR_PAD_BOTH') {
		var j = 0;
		while (output.length < pad_length) {
			if (j % 2) {
				output = output + pad_string;
			} else {
				output = pad_string + output;
			}
			j++;
		}
	}
	return output;
}

// Función para expandir el contenido de las secciones del accordion con animación
jQuery.wijmo.wijaccordion.animations.animate = function (options) {
    this.slide(options, {
        easing: options.down ? "easeOutBounce" : "swing",
        duration: options.down ? 1000 : 200
    });
}

//Esta funcion se encarga de poner el texto recibido (el parametro t) como tip para el usuario en caso de que no pase alguna validacion en los selects de los dialogs de generacion de reportes.	
function updateTips(t){
    $(".validateTips").text( t ).addClass( "ui-state-highlight" );
    setTimeout(function(){ $(".validateTips").removeClass( "ui-state-highlight", 1500 );}, 500);
}
//Funcion que valida que el usuario no seleccione una opcion con value "". Usada para validar los selects de los dialogs para generar reportes. 
function check(o, tip){
    if ( o.val() == "") {
        o.addClass( "ui-state-error" );
        updateTips(tip);
        return false;
    } else {
        return true;
    }
}